<!--注意id属性每个页面id必须独立，lay-title为当前页面的标题属性-->
<div class="layui-fluid layui-anim febs-anim" id="hr-hrDeptSynLog" lay-title="部门同步日志">
    <div class="layui-row febs-container">
        <div class="layui-col-md12">
            <div class="layui-card">
                <div class="layui-card-body febs-table-full">
                    <!--注意lay-filter属性，该属性为form表单唯一属性-->
                    <form class="layui-form layui-table-form" lay-filter="hrDeptSynLog-table-form">
                        <!--fieldset为区分搜索区域-->
                        <fieldset class="layui-elem-field layui-field-title" style="margin-top: 10px;">
                            <legend style="font-size: 15px; font-weight: bolder;"></legend>
                        </fieldset>
                        <div class="layui-row">
                            <!-- 查询信息 -->
                            <div class="layui-col-md11">
                                <!-- layui-form-item为自适应长度样式 -->
                                <div class="layui-form-item">
                                    <!-- layui-inline样式为单行多控件 -->
                                    <div class="layui-inline">
                                        <label class="layui-form-label layui-form-label-sm"></label>
                                        <div class="layui-input-inline">
                                            <!-- 注意name属性于定义的实体类属性一致，placeholder设置提示用语-->
                                            <!-- maxlength设置最大长度-->
                                            <input type="hidden" name="id">
                                        </div>
                                    </div>
                                </div>
                            </div>
                            <!-- 重置按钮 -->
                            <!-- 注意id属性 用于绑定JS事件-->
                            <div class="layui-col-md1 layui-col-sm12 layui-col-xs12 table-action-area">
                                <div class="layui-btn layui-btn-sm layui-btn-primary febs-button-green-plain
                                            table-action" id="hr-hrDeptSynLog-reset-btn">
                                    <i class="layui-icon">&#xe79b;</i>
                                </div>
                            </div>
                        </div>
                    </form>

                    <!-- 表格 -->
                    <!-- 注意lay-filter和id属性，两者需保持一致 用于绑定JS事件-->
                    <table lay-filter="hr-hrDeptSynLog-hrDeptSynLog-table"
                           lay-data="{id: 'hr-hrDeptSynLog-hrDeptSynLog-table'}"></table>
                </div>
            </div>
        </div>
    </div>
</div>

<!-- 列表右侧操作栏 -->
<!-- 注意id属性，列表初始化的时候加载本列表右侧工具栏-->
<script type="text/html" id="hr-hrDeptSynLog-option">
    <a id="downloadLog" lay-event="download">日志</a>
</script>

<script data-th-inline="none" type="text/javascript">
    layui.use(['dropdown', 'jquery', 'form', 'table', 'febs'], function () {
        let $ = layui.jquery,
            febs = layui.febs,
            form = layui.form,
            table = layui.table,
            // 定义页面视图
            $view = $('#hr-hrDeptSynLog'),
            // 定义form表单
            $searchForm = $view.find('form'),
            // 定义重置按钮
            $reset = $view.find('#hr-hrDeptSynLog-reset-btn'),
            // 定义表格排序
            sortObject = {field: 'address', type: null},
            tableIns;

        // 表单渲染
        form.render();

        // 调用列表初始化方法
        initTable();

        table.on('tool(hr-hrDeptSynLog-hrDeptSynLog-table)', function (obj) {
            let data = obj.data,
                layEvent = obj.event;
            // detail为上方配置列表右侧操作栏的lay-event属性
            if (layEvent === 'download'){
                febs.modal.confirm('下载', '确定下载日志？', function () {
                    // 调用下载日志
                    var date1 = data.syncTime
                    data.syncTime = new Date();
                    fetch(ctx + 'hrDeptSynLog/download',{
                        method : 'POST',
                        body : JSON.stringify(data),
                        header: {
                            'Content-Type': 'application/json;charset=UTF-8'
                        }
                    }).then(function (response) {
                        return response.blob();
                    }).then(function (blob) {
                        const link = document.createElement('a')
                        link.style.display = 'none'
                        link.href = URL.createObjectURL(blob)
                        link.download = date1+".log";
                        document.body.appendChild(link)
                        link.click()
                        // 释放的 URL 对象以及移除 a 标签
                        URL.revokeObjectURL(link.href)
                        document.body.removeChild(link)
                        febs.alert.success("下载成功！");
                    })
                });


            }
        });

        // 重置按钮点击事件
        $reset.on('click', function () {
            // 清空表单信息
            $searchForm[0].reset();
            sortObject.type = 'null';
            // 重新加载表格数据
            tableIns.reload({where: getQueryParams(true), page: {curr: 1}, initSort: sortObject});
        });


        // 初始化数据表格
        function initTable() {
            tableIns = febs.table.init({
                // 当前视图的table
                elem: $view.find('table'),
                // 列表ID
                id: 'hr-hrDeptSynLog-hrDeptSynLog-table',
                // 访问路由
                url: ctx + 'hrDeptSynLog/list',
                // 配置列表顶部工具栏
                toolbar: true,
                // 配置列表顶部右侧显示列过滤项
                defaultToolbar: ['filter'],
                // 表格渲染完毕后的回调
                done: function (res, curr, count) {
                    // 调整表格在页面占比
                    $("table").css("width", "100%");
                },
                width: "100%",
                // field属性为返回实体类中相关属性名，title为表格列头显示内容，minWidth为表格列最小宽度，maxWidth为表格列最大宽度
                cols: [[
                    {field: 'id', title: 'ID', width: 70},
                    {field: 'logSyncMode', title: '同步模式', width: 200},
                    {field: 'logStatus', title: '同步状态', width: 200, templet: function (res) {
                            return res.logStatus == '同步成功' ?
                                "<span style='color:green'>" + res.logStatus + "</span>"
                                :
                                "<span style='color:red'>" + res.logStatus + "</span>"
                        }},
                    {field: 'syncTime', title: '同步时间', width: 300},
                    {title: '操作', width: 200, toolbar: '#hr-hrDeptSynLog-option'}
                ]]
            });
        }

        // 获得form表单中查询条件并格式化为JSON格式
        function getQueryParams(flag) {
            let params = $searchForm.serializeJson();
            return params;
        }

        //按回车搜索
        $(".layui-input").keyup(function (e) {
            //当按下按键时
            //.which属性判断按下的是哪个键，回车键的键位序号为13
            if (e.which == 13) {
                $query.click();
            }
        });
    })
</script>